package cn.tedu.oopextends;

import javax.   lang.model.SourceVersion;

/**
 * @Author 金帮嘉诚
 * @Date 2021-06-09 周三 10:01
 */
/*本类用于继承的入门案例*/
public class TestExtendsDemo {
    public static void main(String[] args) {
        //5.创建Animal类与RobotCat类的对象
        Animal animal = new Animal();
        Cat cat = new Cat();
        RobotCat robotCat = new RobotCat();
        animal.eat();
        cat.eat();
        robotCat.eat();
        /*3.继承具有传递性，爷爷的功能会传给爸爸，爸爸的功能会传给孙子*/
    }
}

//
class Animal {
    //方法eat
    public void eat() {
        System.out.println("小动物吃啥都行");
    }
}

//建立继承关系
/*1.我们通过extends关键字建立子类与父类的继承关系，子类 extends 父类*/
/*2.JAVA只支持单继承：一个子类只能有一个父类；但一个父类可以有多个子类*/
/*7.继承是一种is a的关系，比如小猫是小动物，RobotCat是猫*/
/*要求子类必须是父类的一种继承结构，依赖性非常强，强耦合
* */
class Cat extends Animal {
    int a = 10;
    private int b=100;
}

//3.1与Cat类建立继承关系
class RobotCat extends Cat {//Class cannot extend multiple classes

    /*4.子类可以拥有自己独有的方法，实现功能的拓展，青出于蓝而胜于蓝*/
    /*5.子类在继承父类以后，相当于把父类的功能进行了复制 */
    public void studyJAVA() {
        System.out.println(a);//子类可以使用父类的属性a
        /*6.父类的私有资源子类不可以使用，原因是私有资源不可见*/
        //System.out.println(b);//子类不能使用父类的私有属性
    }

}

//3.2创建孙子类Mew，与Cat建立继承关系
class Mew extends Cat {

}
